﻿Public Class ConfAnalizadorLex
    Dim directorioData As String
    Dim nomArchivoParametros As String = "\param.txt"

    Private Sub txtMAXDIGIT_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMAXDIGIT.KeyPress, txtMAXDIGIT.KeyPress, txtMAXLINEA.KeyPress
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

    Private Sub btnUbicacionArchivoConf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelUbicacionEscaner.Click
        Dim ofd As New OpenFileDialog
        ofd.Filter = "Ejecutable [*.exe*]|*.exe"
        ofd.Title = "Ubicación de scanner.exe"
        ofd.ShowDialog()
        txtUBICACIONSCANNER.Text = ofd.FileName

    End Sub

    Private Sub btnGuardarConfAnalizadorLex_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardarConfAnalizadorLex.Click
        Dim sw As IO.StreamWriter
        Dim idioma As Integer
        Try
            If Not IO.File.Exists(txtUBICACIONSCANNER.Text) Then
                MessageBox.Show("La ubicación del archivo scanner.exe es incorrecta. Vuelva a seleccionar el archivo o revise la dirección: " & vbCrLf & txtUBICACIONSCANNER.Text, "scanner.exe no encontrado", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
            If IO.File.Exists(directorioData & nomArchivoParametros) Then
                'IO.File.Delete(directorioData & nomArchivoParametros)
                IO.File.WriteAllText(directorioData & nomArchivoParametros, "")
            End If
            sw = IO.File.AppendText(directorioData & nomArchivoParametros)

            If (ComboBoxIdioma.Text.Equals("Español")) Then
                idioma = 1
            Else
                idioma = 0
            End If

            sw.Write("MAXLINEA;" & txtMAXLINEA.Text & vbCrLf)
            sw.Write("MAXDIGIT;" & txtMAXDIGIT.Text & vbCrLf)
            sw.Write("MAXID;" & txtMAXID.Text & vbCrLf)
            sw.Write("ES_ESP;" & idioma & vbCrLf)
            sw.Write("UBICACIONSCANNER;" & txtUBICACIONSCANNER.Text & vbCrLf)
            sw.Flush()
            sw.Close()
            Me.Close()
            'instrucción para poner el archivo oculto
            'SetAttr(directorioData & nomArchivoParametros, FileAttribute.Hidden)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub ConfAnalizadorLex_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        directorioData = Environment.CurrentDirectory & "\data"
        If Not IO.Directory.Exists(directorioData) Then
            MkDir(directorioData)
        Else
            cargarContenidoArchivoParametros()
        End If
    End Sub

    Private Sub cargarContenidoArchivoParametros()
        Dim sr As IO.StreamReader
        Dim contenidoParam As String
        Dim param() As String
        If IO.File.Exists(directorioData & nomArchivoParametros) Then
            sr = IO.File.OpenText(directorioData & nomArchivoParametros)
            contenidoParam = sr.ReadToEnd()
            sr.Close()
            param = Split(contenidoParam, vbCrLf) 'Split por ENTER. param contiene todas las lineas del archivo

            'EL orden de lectura es igual al orden en que se escribieron los datos en el archivo
            'sw.WriteLine("MAXLINEA;" & txtMAXLINEA.Text)
            'sw.WriteLine("MAXDIGIT;" & txtMAXDIGIT.Text)
            'sw.WriteLine("MAXID;" & txtMAXID.Text)
            'sw.Write("ES_ESP;" & idioma & vbCrLf)
            'sw.WriteLine("UBICACIONSCANNER;" & txtUBICACIONSCANNER.Text)
            txtMAXLINEA.Text = Split(param(0), ";")(1) 'param(0) primero linea. En la posicion 0 esta el nombre del parametro, en la uno el valor
            txtMAXDIGIT.Text = Split(param(1), ";")(1) 'param(1) segunda linea. En la posicion 0 esta el nombre del parametro, en la uno el valor
            txtMAXID.Text = Split(param(2), ";")(1) 'param(2) tercera linea. En la posicion 0 esta el nombre del parametro, en la uno el valor
            If (Split(param(3), ";")(1) = 1) Then
                ComboBoxIdioma.Text = "Español"
            Else
                ComboBoxIdioma.Text = "Inglés"
            End If
            txtUBICACIONSCANNER.Text = Split(param(4), ";")(1) 'param(3) caurta linea. En la posicion 0 esta el nombre del parametro, en la uno el valor

        End If
    End Sub

    
End Class